import request from '@/utils/request'

// 用户管理接口
export const userApi = {
  // 获取用户列表
  getList(params) {
    const newParams = { ...params };
    return request({
      url: '/system/user/list',
      method: 'get',
      params: newParams
    })
  },
  // 添加用户
  add(data) {
    return request({
      url: '/system/user',
      method: 'post',
      data
    })
  },
  // 更新用户
  update(data) {
    return request({
      url: '/system/user',
      method: 'put',
      data
    })
  },
  // 删除用户
  delete(userId) {
    return request({
      url: `/system/user/${userId}`,
      method: 'delete'
    })
  },
  // 重置密码
  resetPassword(data) {
    return request({
      url: '/system/user/resetPwd',
      method: 'put',
      data
    })
  },
  // 修改用户状态
  updateStatus(id, status) {
    return request({
      url: `/system/user/status/${id}/${status}`,
      method: 'put'
    })
  }
}

// 角色管理接口
export const roleApi = {
  // 获取角色列表
  getList(params) {
    return request({
      url: '/system/role/list',
      method: 'get',
      params
    })
  },
  // 获取角色详情
  getDetail(roleId) {
    return request({
      url: `/system/role/${roleId}`,
      method: 'get'
    })
  },
  // 添加角色
  add(data) {
    return request({
      url: '/system/role',
      method: 'post',
      data
    })
  },
  // 更新角色
  update(data) {
    return request({
      url: '/system/role',
      method: 'put',
      data
    })
  },
  // 删除角色
  delete(roleId) {
    return request({
      url: `/system/role/${roleId}`,
      method: 'delete'
    })
  },
  // 分配角色菜单
  updateRoleMenu(data) {
    return request({
      url: '/system/role/menu',
      method: 'put',
      data
    })
  },
  // 获取角色菜单列表
  getRoleMenuList(roleId) {
    return request({
      url: `/system/role/menu/${roleId}`,
      method: 'get'
    })
  },
  // 获取角色可选菜单树
  getRoleMenuTree(roleId) {
    return request({
      url: `/system/menu/role/${roleId}`,
      method: 'get'
    })
  },
  // 修改角色状态
  updateStatus(id, status) {
    return request({
      url: `/system/role/status/${id}/${status}`,
      method: 'put'
    })
  },
  // 获取角色权限
  getPermissions(roleId) {
    return request({
      url: `/system/role/permissions/${roleId}`,
      method: 'get'
    })
  },
  // 更新角色权限
  updatePermissions(roleId, permissions) {
    return request({
      url: `/system/role/permissions/${roleId}`,
      method: 'put',
      data: { permissions }
    })
  }
}

// 菜单管理接口
export const menuApi = {
  // 获取菜单树
  getTree() {
    return request({
      url: '/system/menu/tree',
      method: 'get'
    })
  },
  // 添加菜单
  add(data) {
    return request({
      url: '/system/menu/add',
      method: 'post',
      data
    })
  },
  // 更新菜单
  update(data) {
    return request({
      url: '/system/menu/update',
      method: 'put',
      data
    })
  },
  // 删除菜单
  delete(id) {
    return request({
      url: `/system/menu/delete/${id}`,
      method: 'delete'
    })
  },
  // 修改菜单状态
  updateStatus(id, status) {
    return request({
      url: `/system/menu/status/${id}/${status}`,
      method: 'put'
    })
  }
}

// 部门管理接口
export const deptApi = {
  // 获取部门列表
  getList(params) {
    return request({
      url: '/system/dept/treeList',
      method: 'get',
      params
    })
  }
}

// 职位管理接口
export const positionApi = {
  // 获取职位列表
  getList(params) {
    return request({
      url: '/system/position/list',
      method: 'get',
      params
    })
  }
}

// 字典管理接口
export const dictApi = {
  // 获取字典类型列表
  getTypeList(params) {
    return request({
      url: '/system/dict/type/list',
      method: 'get',
      params
    })
  },
  // 添加字典类型
  addType(data) {
    return request({
      url: '/system/dict/type',
      method: 'post',
      data
    })
  },
  // 更新字典类型
  updateType(data) {
    return request({
      url: '/system/dict/type',
      method: 'put',
      data
    })
  },
  // 删除字典类型
  deleteType(dictId) {
    return request({
      url: `/system/dict/type/${dictId}`,
      method: 'delete'
    })
  },
  // 获取字典数据列表
  getDataList(params) {
    return request({
      url: '/system/dict/data/list',
      method: 'get',
      params
    })
  },
  // 添加字典数据
  addData(data) {
    return request({
      url: '/system/dict/data',
      method: 'post',
      data
    })
  },
  // 更新字典数据
  updateData(data) {
    return request({
      url: '/system/dict/data',
      method: 'put',
      data
    })
  },
  // 删除字典数据
  deleteData(dictCode) {
    return request({
      url: `/system/dict/data/${dictCode}`,
      method: 'delete'
    })
  },
  // 根据字典类型获取字典数据
  getDataByType(dictType) {
    return request({
      url: `/system/dict/data/type/${dictType}`,
      method: 'get'
    })
  }
}

// 获取系统概览数据
export function getSystemOverview() {
  return request({
    url: '/api/statistics/summary',
    method: 'get'
  })
} 